// 路由模块
import lodash from 'lodash'
const {
  pageEnterTransitionClass,
  pageBackTransitionClass,
  loadingEnterTransitionClass,
  loadingBackTransitionClass,
  navbarTransitionClass
} = require('@/services/transitionClass.service.js')

const router_module = {
  state: {
    // 页面切换效果
    transitionInfo: {
      useTransition: true, // 是否开启动画切换效果
      navbarTransitionClass: navbarTransitionClass, // 导航栏切换动画效果
      loadingTransitionClass: loadingEnterTransitionClass, // loading切换动画效果
      pageTransitionClass: pageEnterTransitionClass, // 页面切换动画效果
      isBack: false // 进入当前路由是否为后退回到的
    },
    // 路由信息
    routerInfo: {},
    routerDefaultInfo: {
      // 判断是否是公共路由  默认私人：'private'  公共：'public'
      routerType: 'private',
      keepAlive: true, // 是否保存活性，即会保存其中内容不会销毁 （前进刷新，后退不刷新）
      isLoading: true, // 进入当前路由是否加载中
      loadingType: 'loading', // 加载效果类型
    },
    // 标题栏信息
    titleInfo: {
      suffix: ' - 某网站', // 后缀
      showSuffix: true // 是否显示后缀
    },

    // 导航栏信息
    navInfo: {},
    navDefaultInfo: {
      showNavbar: true, // 是否显示标题栏
      title: '商城', // 标题栏
      showLeft: true, // 是否显示左侧操作
      showLeftLabel: true, // 是否显示左侧名称
      leftLabel: '返回', // 左侧名称
      rightLabel: '', // 右侧名称
      rightIcon: '', // 右侧图标 vant图标名称

      // 右侧全局事件名，必须为全局唯一事件名，建议类型为 Symbol,如：Symbol('rightEvent')
      rightEvent: ''
    }
  },
  mutations: {
    // 设置切换效果
    setTransitionInfo(state, data) {
      state.transitionInfo = lodash.assignIn(state.transitionInfo, data)
    },
    // 设置路由属性
    setRouterInfo(state, data) {
      const info = lodash.assignIn(state.routerDefaultInfo, data)
      state.routerInfo = info
    },
    // 设置标题栏
    setTitleInfo(state, data) {
      state.titleInfo = data
      document.title = state.navInfo.title + (state.titleInfo.showSuffix ? state.titleInfo.suffix : '')
    },
    // 设置导航栏
    setNavInfo(state, data) {
      state.navInfo = Object.assign({}, state.navDefaultInfo, data)
      document.title = state.navInfo.title + (state.titleInfo.showSuffix ? state.titleInfo.suffix : '')
    }
  }
}

export default router_module